import logging

from django.db import DatabaseError
from rest_framework import status
from rest_framework.response import Response

from rest_framework.views import exception_handler as drf_exception_handler
logger=logging.getLogger('django')

def exception_handler(exc,context):

    """
    自定义异常处理
    :param exc: 异常
    :param context:抛出异常的上下文
    :return: Response 响应对象
    """
    response=drf_exception_handler(exc,context)
    if response is None:
        view=context['view']

        from redis import RedisError
        if isinstance(exc,DatabaseError) or isinstance(exc,RedisError):
            logger.error('[%s]%s'%(view,exc))
            Response({'message':'服务器内部错误'},status=status.HTTP_507_INSUFFICIENT_STORAGE)

    return response


# #打印日志
# #获取日志器
# import logging
# logger=logging.getLogger('django')
# logger.error('Error Message')
# logger.info('Info Message')

# class A():
#     def get_num(self):
#         pass
#
# a = A()

